package com.zimi.util;

import com.google.gson.Gson;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonParser;

import java.util.ArrayList;
import java.util.List;

public class GsonUtil {

    /**
     * json转对象
     *
     * @param jsonData
     * @param type
     * @param <T>
     * @return
     */
    public static <T> T json2Obj(String jsonData, Class<T> type) {
        return new Gson().fromJson(jsonData, type);
    }


    /**
     * json集合转对象集合
     *
     * @param jsonData
     * @param clazz
     * @param <T>
     * @return
     */
    public static <T> List<T> json2Objs(String jsonData, Class<T> clazz) {
        Gson gson = new Gson();
        JsonParser parser = new JsonParser();
        JsonElement el = parser.parse(jsonData);
        JsonArray jsonArray = new JsonArray();
        if (el.isJsonArray()) {
            jsonArray = el.getAsJsonArray();
        }
        T product = null;
        List<T> list = new ArrayList<>();
        for (Object e : jsonArray) {
            product = gson.fromJson((JsonElement) e, clazz);
            list.add(product);
        }
        return list;
    }
}
